Convert AttributesToAvoidReplicating
to a ProxyGenerationOptions
property
#575
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As requested by @jonorossi in #517 (comment).
(Note: This could perhaps still be cleaned up a little further. I decided to open the PR early to demonstrate the extent of the required code changes; as I stated in the linked issue, I'm not convinced this is worth all the trouble.)
This PR starts by first bundling several commonly used objects into a "proxy generation context", which is really just a per-type-generation state bag useful for reducing the number of things we need to inject into the various objects (generators, contributors, collectors, etc.).
I've attempted to do this cleanly several times now, it always gets messy once I'm beginning to inject the
AttributesToAvoidReplicating
collection into the emitters and invocation type generators (which happens fairly late in this PR).(Unrelated P.S.: Apparently, GitHub Actions doesn't trigger for PRs. I'll look into that separately.)